<?php
/**
 * @package Joostina
 * @copyright Авторские права (C) 2008-2010 Joostina team. Все права защищены.
 * @license Лицензия http://www.gnu.org/licenses/gpl-2.0.htm GNU/GPL, или help/license.php
 * Joostina! - свободное программное обеспечение распространяемое по условиям лицензии GNU/GPL
 * Для получения информации о используемых расширениях и замечаний об авторском праве, смотрите файл help/copyright.php.
 */

// запрет прямого доступа
defined('_VALID_MOS') or die();

require_once($mainframe->getPath('admin_html'));
require_once($mainframe->getPath('class'));

// подключаем библиотеку joiadmin
mosMainFrame::addLib('joiadmin');

// идентификатор записи видео, нужен нам для редактирования и сохранения записи
$id = (int) mosGetParam($_REQUEST, 'id', 0);
// массив идентификаторов видео, используется при удалении элементов видео
$cid = (array) josGetArrayInts('cid');

// рассчитываем какую функцию запустить
switch ($task) {

    // создание видео
    case 'new':
        editVideo(0);
        break;

    // редактирование видео
    case 'edit':
        editVideo($id);
        break;

    // сохранение видео
    case 'save':
        saveVideo($id);
        break;

    // сохранение видео и сразу создание нового
    case 'save_and_new':
        saveVideo($id, true);
        break;

    // удаление видео
    case 'remove':
        deleteVideo($cid);
        break;

    // действие по умолчанию - вывод списка видео
    default:
        index();
        break;
}

// для вывода списка видео
function index() {

    $videos = new Video;
    // подсчитываем общее число записей видео
    $video_count = $videos->count();

    // формируем постраничную навигацию для списка видео
    $pagenav = JoiAdmin::pagenav($video_count, 'com_video');

    $param = array(
        'offset' => $pagenav->limitstart,
        'limit' => $pagenav->limit
    );
    // получаем список видео для текущей страницы
    $video_list = $videos->get_list($param);

    // выводим список видео
    videoHTML::index($videos, $video_list, $pagenav);
}

// для редактирования и создания видео
function editVideo( $id = null ) {

    $video_data = new Video;
    // загружаем данные по видео, если id не указано - то видео будет создано новое
    $video_data->load($id);

    // выводим страницу редактирования и создания видео
    videoHTML::edit($video_data, $video_data);
}

// для сохранения созданного или отредактированного видео
function saveVideo($id, $create_new = false) {

    // проверка что данные пришли с активной формы
    josSpoofCheck();

    $video = new Video;
    // сохраняем видео или ругаемся ошибкой
    $video->save($_POST) ? null : mosRedirect('index2.php?option=com_video', 'Ошибка сохранения видео');

    // всё сохранено, проверям надо ли создавать еще видео или можно перейти в список уже созданного
    $create_new ? mosRedirect('index2.php?option=com_video&task=new', 'Сохранено успешно!, Создаём новое') : mosRedirect('index2.php?option=com_video', 'Сохранено успешно!');
}

// для удаления видео
function deleteVideo( $cid ) {
    // защита
    josSpoofCheck();

    $video = new Video;
    // удаляем все записи по пришгедшим идентификаторам
    $video->delete_array($cid, 'id') ? mosRedirect('index2.php?option=com_video', 'Удалено успешно!') : mosRedirect('index2.php?option=com_video', 'Ошибка удаления');
}
